<?php 
function __autoload($className)  
{
    //解析文件名，得到文件的存放路径，如News_Model表示存放在models文件夹里的news.php（这里是作者的命名约定）  
    list($filename , $suffix) = explode('_' , $className);  
  
    //构成文件路径  
    $file = SERVER_ROOT . 'Models/' . ucwords($filename) . '_Model.php';  
  	
    //获取文件  
    if (file_exists($file))  
    {
        //引入文件  
        include_once($file);
    }
    else  
    {
        //文件不存在  
        //dir($className."模型未找到");
    }

}

//获取对象控制和方法 
$cont_request = str_replace("/index.php/","",$_SERVER['ORIG_PATH_INFO']);

//url中包含. 则取.之前的内容
if(strpos($cont_request,'.')!==FALSE)
{
	$tmp = explode(".",$cont_request);
	$cont_request = $tmp[0];
}

$getVars = array(); 

//如果路径中包含/ 则第一个为控制器，第二个为调用方法 第二个为空默认index方法
if(strpos($cont_request,'/') !== FALSE)
{
	$cont_arry = explode("/",$cont_request);
	//取控制器和方法
	$controller = ucwords($cont_arry[0]);	//取控制器 首字母大写
	$action = ucwords($cont_arry[1]);		//取方法   首字母大写

	//长度超过2位，视为get键和值	须对应
	if(count($cont_arry) > 2)
	{
		for($i=2; $i<count($cont_arry); $i+=2)
		{
			$_GET[$cont_arry[$i]] = $cont_arry[$i+1];  
		}
	}
}

if(!$controller){$controller = 'Home';}
if(!$action){$action = 'Index';}

//获取所有get请求  
$get_request = $_SERVER['QUERY_STRING'];

if($get_request)
{
	$parsed = explode('&' , $get_request);  

	foreach ($parsed as $argument)  
	{  
	    //用"="分隔字符串，左边为变量，右边为值  
	    list($variable , $value) = explode('=' , $argument);  
	    $_GET[$variable] = $value;  
	}
}

//构成控制器文件路径  
$target = SERVER_ROOT . 'Controllers/' . $controller . '_Controller.php';

if (file_exists($target))
{
	include_once($target);
	$class = ucfirst($controller) . '_Controller';
	if (class_exists($class))  
    {  
        $controller = new $class;  
    }  
    else  
    {  
        die('类错误');  
    } 
}else{
	die('控制器未找到');
}

$controller->index();
?>